package com.itheima.design.mode.jdk_proxy;

import java.lang.reflect.Proxy;

/**
 * 代理
 */
public class TonyCompany {

    //动态生成代理对象 传入target的是被代理的类
    public static Object proxy(Object target){
        /**
         * ClassLoader loader:类加载器
         *
         * Class<?>[] interfaces：需要被代理的目标对象实现的接口，可以传入多个
         *
         * InvocationHandler h：功能增强的接口
         */
        return Proxy.newProxyInstance(target.getClass().getClassLoader(),target.getClass().getInterfaces()
                ,new MyInvationHandler(target));
    }
}
